package com.some;

import com.leetcode.Offer.ListNode;

import java.util.*;

public class TenXun_4 {
    public ListNode solve(ListNode[] a) {
        Comparator<ListNode> comparator = (o1, o2) -> {
            while (o1 != null && o2 != null && o1.val == o2.val) {
                o1 = o1.next;
                o2 = o1.next;
            }
            if (o1 == null) {
                return -o2.val;
            } else if (o2 == null) {
                return o1.val;
            } else {
                return o1.val - o2.val;
            }
        };
        Arrays.sort(a, comparator);
        ArrayList<Integer> list = new ArrayList<>();
        for (ListNode listNode : a) {
            while (listNode != null) {
                if (list.isEmpty() || !list.contains(listNode.val)) {
                    list.add(listNode.val);
                }
                listNode = listNode.next;
            }
        }
        ListNode head = new ListNode(list.get(0));
        ListNode listNode = head;
        for (int i = 1; i < list.size(); i++) {
            listNode.next = new ListNode(list.get(i));
            listNode = listNode.next;
        }
        // listNode.next = head;
        return head;
    }
}
